function TITTInternal() {
	
	var PING		= "cumdumpster", 
		INTERFACE	= "showMeYourTITTies";

	this.ping = function() {
		return 42;
	}
	
	this.getInterface = function(o) {
		var s = new Array();

		s[0] = [Types.toNative(o).asString()];
		var h = 1;

		for(var id in o) {
			var t = new Array();
			t[0] = Types.UNKNOWN.asString();
			t[1] = id;
			if(typeof(o[id]) == "function") {
				for(var i = 2; i < 2 + o[id].length; i++) {
					t[i] = Types.UNKNOWN.asString();
				}
				s[h++] = t;
			}
		}

		return s;
	}
	
	this.call = function(o, methodName) {
		
		if(methodName == PING)
			return new TypedObject(Types.INT, this.ping());
		
		if(methodName == INTERFACE)
			return new TypedObject(Types.toArray(Types.toArray(Types.STRING)), this.getInterface(o));

		return null;
	}
	
	
}